;--------------------------------------------------------------------------
;AI-Fantasyft
;--------------------------------------------------------------------------
[statedef 96600]
anim = 9998
ctrl = 0

[state 825]
type = assertspecial
trigger1 = 1
flag = invisible

[state 96600]
type = selfstate
trigger1 = !ishelper
value = 0

[state 96600]
type = varset
trigger1 = command="up" && root,command="up"
trigger2 = command="down" && root,command="down"
trigger3 = command="back" && root,command="back"
trigger4 = command="fwd" && root,command="fwd"
trigger5 = command="a" && root,command="a"
trigger6 = command="b" && root,command="b"
trigger7 = command="c" && root,command="c"
trigger8 = command="x" && root,command="x"
trigger9 = command="y" && root,command="y"
trigger10 = command="z" && root,command="z"
trigger11 = command="start" && root,command="start"
var(30) = -1

[state 96600]
type = destroyself
triggerall = ishelper
trigger1 = root,var(30) || var(30)=-1
trigger2 = command="up" && root,command="up"
trigger3 = command="down" && root,command="down"
trigger4 = command="back" && root,command="back"
trigger5 = command="fwd" && root,command="fwd"
trigger6 = command="a" && root,command="a"
trigger7 = command="b" && root,command="b"
trigger8 = command="c" && root,command="c"
trigger9 = command="x" && root,command="x"
trigger10 = command="y" && root,command="y"
trigger11 = command="z" && root,command="z"
trigger12 = command="start" && root,command="start"

[state 96600]
type = varset
triggerall = var(30)!=-1
trigger1 = root,command="up"
trigger2 = root,command="down"
trigger3 = root,command="back"
trigger4 = root,command="fwd"
trigger5 = root,command="a"
trigger6 = root,command="b"
trigger7 = root,command="c"
trigger8 = root,command="x"
trigger9 = root,command="y"
trigger10 = root,command="z"
trigger11 = root,command="start"
var(30) = 1

;--------------------------------------------------------------------------
;   AI action
;--------------------------------------------------------------------------
[statedef -3]
;------------------------------------
[state -3]
type = varset
trigger1 = 1
var(31) = 0	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(30)
triggerall = numenemy=2
trigger1 = !enemynear,alive
var(31) = 1	
ignorehitpause = 1 
;------------------------------------
[state -3]
type = varset
triggerall = var(30)
trigger1 = stateno=5120
var(32) = 12	
ignorehitpause = 1 

[state -3]
type = varadd
trigger1 = var(32)
var(32) = -1
ignorehitpause = 1

[state -3]
type = varset
trigger1 = var(32)<0
var(32) = 0
ignorehitpause = 1 
;-------------------------------------------------
[State -3]
type = VarSet
trigger1 = p2stateno=5120
var(33) = 13
ignorehitpause = 1 

[State -3]
type = Varadd
trigger1 = var(33)
var(33) = -1
ignorehitpause = 1 

[State -3]
type = VarSet
trigger1 = var(33)<=0
var(33) = 0
ignorehitpause = 1 
;--------------------------------
[state -3]
type = varset
trigger1 = !var(35)
trigger1 = !(gametime%60)
var(34) = random	
ignorehitpause = 1
;-------------------------------------------------
[State -3]
type = VarSet
trigger1 = stateno=1600 && movehit
var(35) = 1
ignorehitpause = 1

[State -3]
type = VarSet
triggerall = var(35)
trigger1 = stateno!=1600 && movecontact
trigger2 = p2statetype=L || p2stateno=5120 || p2movetype!=H 
var(35) = 0
ignorehitpause = 1
;--------------------------------
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
var(34) = random+1
ignorehitpause = 1

[state -3]
type = varset
triggerall = stateno=1600 && movehit=1
trigger1 = var(34)>0
var(34) = -var(34)
ignorehitpause = 1

[state -3]
type = varset
triggerall = !var(35)
trigger1 = var(34)<0
var(34) = random
ignorehitpause = 1
;==============================================================
;[state -3]
;type = displaytoclipboard
;trigger1 = 1
;text="%f,%f,%f,%f,%f"
;params = fvar(10),fvar(11),fvar(12),fvar(13),fvar(14)
;ignorehitpause = 1

;[state -3]
;type = appendtoclipboard
;trigger1 = 1
;text="\n%f,%d,%d"
;params = fvar(15),var(35),var(34)
;ignorehitpause = 1

;[state -3]
;type = displaytoclipboard
;trigger1 = 1
;text="p2bodydist x=%d,p2dist y=%d,pos y=%d"
;params = floor(p2bodydist x),floor(p2dist y),floor(pos y)
;ignorehitpause = 1
;----------------------------------
;a
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
fvar(10) = 0.45

[state -3]
type = varset
triggerall = !var(35)
trigger1 = fvar(10)
fvar(10) = 0
ignorehitpause = 1
;----------------------------------
;v0
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
fvar(11) = 10

[state -3]
type = varset
triggerall = !var(35)
trigger1 = fvar(11)
fvar(11) = 0
ignorehitpause = 1
;----------------------------------
;S0
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
fvar(12) = abs(enemynear(var(31)),pos y)

[state -3]
type = varset
triggerall = !var(35)
trigger1 = fvar(12)
fvar(12) = 0
ignorehitpause = 1
;----------------------------------
;Sr(hit height)
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
fvar(13) = 60

[state -3]
type = varset
triggerall = !var(35)
trigger1 = fvar(13)
fvar(13) = 0
ignorehitpause = 1
;----------------------------------
;Ts(hit start time)
[state -3]
type = varset
trigger1 = stateno=1600 && movehit=1
fvar(14) = ifelse(var(34)<=-500,3,12)

[state -3]
type = varset
triggerall = !var(35)
trigger1 = fvar(14)
fvar(14) = 0
ignorehitpause = 1
;----------------------------------
;p2dist y
[state -3]
type = varset
triggerall = var(35)
triggerall = enemynear(var(31)),vel y>0
trigger1 = 2*fvar(12)+fvar(11)*fvar(11)/fvar(10)-2*fvar(13)>=0
fvar(15) = fvar(12)+0.5*fvar(11)*fvar(11)/fvar(10)-0.5*fvar(10)*exp(2*ln( exp(0.5*ln( (2*fvar(12)+fvar(11)*fvar(11)/fvar(10)-2*fvar(13))/fvar(10) ))-fvar(14) ))
ignorehitpause = 1

[state -3]
type = varset
trigger1 = !var(35)
fvar(15) = 0
ignorehitpause = 1
;==============================================================
[state -3]
type = varset
triggerall = !var(36)
triggerall = p2statetype!=A
triggerall = !enemynear(var(31)),numproj
trigger1 = p2movetype=A && p2stateno>=1000
var(36) = -p2stateno	
ignorehitpause = 1

[state -3]
type = varset
triggerall = !var(37)&&var(36)
triggerall = p2stateno!=abs(var(36))
triggerall = p2statetype!=A
triggerall = !enemynear(var(31)),numproj
trigger1 = p2movetype=A && p2stateno>=1000
var(37) = -p2stateno	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(36)<0
triggerall = p2stateno=-var(36)
triggerall = p2statetype!=A
triggerall = enemynear(var(31)),numproj
trigger1 = p2movetype=A && p2stateno>=1000
var(36) = p2stateno	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(37)<0
triggerall = p2stateno=-var(37)
triggerall = p2statetype!=A
triggerall = enemynear(var(31)),numproj
trigger1 = p2movetype=A && p2stateno>=1000
var(37) = p2stateno	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(37)
trigger1 = abs(var(37))=abs(var(36))
var(37) = 0	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(36)<0
trigger1 = p2stateno!=-var(36)
var(36) = 0	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(37)<0
trigger1 = p2stateno!=-var(37)
var(37) = 0	
ignorehitpause = 1
;==============================================================
[state -3]
type = varset
trigger1 = stateno=750
var(38) = -1	
ignorehitpause = 1

[state -3]
type = varset
triggerall = var(38)<0
trigger1 = movetype=A || stateno=52
var(38) = 0	
ignorehitpause = 1

[state -3]
type = varset
trigger1 = stateno=80 || stateno=90
var(38) = 5	
ignorehitpause = 1

[state -3]
type = varadd
trigger1 = var(38)>0
var(38) = -1	
ignorehitpause = 1
;==============================================================
[state -3]     
type = helper
trigger1 = !numhelper(96600)          
trigger1 = roundstate=2
trigger1 = alive
trigger1 = !var(30)
trigger1 = (prevstateno=[191,194])||prevstateno=5900            
trigger1 = ctrl&&stateno=0
helpertype = normal
name = "AI"
stateno = 96600
ID = 96600
pos = 9999,9999            
keyctrl = 1                
pausemovetime = 2147483647          
supermovetime = 2147483647           
persistent = 0               


[state -3]
type=changestate                  
trigger1 = ishelper(96600)        
trigger1 = stateno!=96600
value = 96600

[state -3]  
type = varset
triggerall = !var(30)
triggerall = roundstate = [1,2]      
trigger1  = command = "AI0"  || command = "AI1"  || command = "AI2"
trigger2  = command = "AI3"  || command = "AI4"  || command = "AI5"
trigger3  = command = "AI6"  || command = "AI7"  || command = "AI8"
trigger4  = command = "AI9"  || command = "AI10" || command = "AI11"
trigger5  = command = "AI12" || command = "AI13" || command = "AI14"
trigger6  = command = "AI15" || command = "AI16" || command = "AI17"
trigger7  = command = "AI18" || command = "AI19" || command = "AI20"
trigger8  = command = "AI21" || command = "AI22" || command = "AI23"
trigger9  = command = "AI24" || command = "AI25" || command = "AI26"
trigger10 = command = "AI27" || command = "AI28" || command = "AI29"
trigger11 = command = "AI30" || command = "AI31" || command = "AI32"
trigger12 = command = "AI33" || command = "AI34" || command = "AI35"
trigger13 = command = "AI36" || command = "AI37" || command = "AI38"
trigger14 = numhelper(96600)               
trigger14 = helper(96600),var(30)          
var(30) = 1             
ignorehitpause = 1

[state -3]
type = changestate
value = 0
triggerall = var(30) && statetype!=A && ctrl
trigger1 = win = 1
;==========================================
[state -3]
type = changestate
value = 40
triggerall = var(30)
triggerall = var(35)
triggerall = var(34)=[-750,-250)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = ctrl
triggerall = power>=2000
triggerall = p2bodydist x<=50
triggerall = enemynear(var(31)),vel y>0
trigger1 = enemynear(var(31)),pos y<=-40

[state -3]
type = changestate
value = 3700
triggerall = var(30)
triggerall = var(35)
triggerall = var(34)=[-750,-250)
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = power>=2000
triggerall = ctrl
triggerall = p2bodydist x<=50
triggerall = enemynear(var(31)),vel y>0
trigger1 = p2dist y>-10 && pos y<=-20

[state -3]
type = changestate
value = ifelse(var(34)<=-500,1800,700)
triggerall = var(30)
triggerall = var(35)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = ctrl
triggerall = p2bodydist x<=ifelse(var(34)<=-500,25,50) && p2bodydist x>=0
triggerall = enemynear(var(31)),vel y>0
trigger1 = enemynear(var(31)),pos y=[-fvar(15)+10-10,-fvar(15)+10+10]
;===========================================
[state -3]
type = changestate
value = 750
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = movehit=1
triggerall = p2bodydist x<=80
triggerall = power>=1000
triggerall = random<=333
trigger1 = stateno=460
trigger2 = stateno=1110 && animelem=4,<0

[state -3]
type = changestate
value = 210
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = movehit=1
triggerall = p2bodydist x<=18
trigger1 = stateno=200
trigger2 = stateno=205
trigger3 = stateno=230
trigger4 = stateno=235

[state -3]
type = changestate
value = 410
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=32
trigger1 = stateno=200
trigger2 = stateno=205
trigger3 = stateno=230
trigger4 = stateno=235

[state -3]
type = changestate
value = 260
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = movehit=1
triggerall = p2bodydist x<=60
triggerall = random<=666
trigger1 = stateno=200
trigger2 = stateno=210
trigger3 = stateno=230
trigger4 = stateno=410

[state -3]
type = changestate
value = 460
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1 || moveguarded && random<=333
triggerall = p2bodydist x<=80
trigger1 = stateno=200
trigger2 = stateno=210
trigger3 = stateno=230
trigger4 = stateno=410

[state -3]
type = changestate
value = 3700
triggerall = var(30)
triggerall = movehit=1
triggerall = p2bodydist x<=60
triggerall = p2dist y>-30
triggerall = power>=2000
triggerall = p2life>=100
trigger1 = (stateno=[1400,1410]) && random<=666 && prevstateno!=[600,650]
trigger2 = (stateno=[3000,3010]) && random<=666 && animelem=17,>=0
trigger3 = (stateno=[3300,3310]) && random<=666 && animelem=13,>=0

[state -3]
type = changestate
value = 3600
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = movehit=1
triggerall = p2bodydist x<=80
triggerall = power>=2000
triggerall = p2life>=100
trigger1 = stateno=460 && random<=150
trigger2 = stateno=1110 && random<=333 && animelem=3,>=0 && animelem=4,<0

[state -3]
type = changestate
value = 3500
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=80
triggerall = power>=2000
triggerall = p2life>=100
trigger1 = stateno=460 && random<=200
trigger2 = stateno=1110 && random<=200 && animelem=4,<0

[state -3]
type = changestate
value = 3210
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = movehit=1
triggerall = p2bodydist x<=80
triggerall = power>=1000
triggerall = p2life>=20
trigger1 = stateno=460 && random<=200
trigger2 = stateno=1110 && random<=333 && animelem=4,<0
trigger3 = stateno=1800 && random<=300 && animelem=4,<0

[state -3]
type = changestate
value = 3010
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=80
triggerall = power>=1000
triggerall = p2life>=20
trigger1 = stateno=460 && random<=300
trigger2 = stateno=1110 && random<=200 && animelem=4,<0
trigger3 = stateno=1800 && random<=400 && animelem=4,<0

[state -3]
type = changestate
value = 3100
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=20
triggerall = power>=1000
triggerall = p2life>=20
trigger1 = stateno=1110 && random<=300 && animelem=4,<0

[state -3]
type = changestate
value = 1600
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=20
trigger1 = stateno=460 && random<=700

[state -3]
type = changestate
value = 1710
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=60
trigger1 = stateno=460 && random<=200

[state -3]
type = changestate
value = 1410
triggerall = var(30)
triggerall = statetype=A
triggerall = p2dist y>10
triggerall = p2statetype!=A || p2bodydist x<=20 && p2statetype=A
trigger1 = (stateno=[600,650]) && p2statetype=A && movehit=1
trigger2 = stateno=260 && (movehit=1 || moveguarded=1 && random<=400)

[state -3]
type = changestate
value = 1200
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=60
triggerall = random<=600
trigger1 = stateno=460

[state -3]
type = changestate
value = 1310
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=70
triggerall = random<=500
trigger1 = stateno=460

[state -3]
type = changestate
value = 1110-(!numprojid(1060)&&random<=400)*100
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movecontact=1
trigger1 = stateno=200
trigger2 = stateno=210
trigger3 = stateno=230
trigger4 = stateno=410
trigger5 = stateno=460

[state -3]
type = changestate
value = 1800
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = movecontact=1
trigger1 = stateno=200
trigger2 = stateno=210
trigger3 = stateno=230
trigger4 = stateno=410
trigger5 = stateno=460

[state -3]
type = changestate
value = 1120
triggerall = var(30)
triggerall = statetype!=A
triggerall = movecontact=1
trigger1 = stateno=[1200,1210]

[state -3]
type = changestate
value = 3100
triggerall = var(30)
triggerall = statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=15
triggerall = power>=1000
trigger1 = stateno=440 && random<=400

[state -3]
type = changestate
value = 1800
triggerall = var(30)
triggerall = statetype!=A
triggerall = movehit=1
triggerall = p2bodydist x<=25
triggerall = random<=666
trigger1 = stateno=440

[state -3]
type = changestate
value = 1310
triggerall = var(30)
triggerall = statetype!=A
triggerall = movehit=1
trigger1 = stateno=440

[state -3]
type = changestate
value = 1110
triggerall = var(30)
triggerall = statetype!=A
triggerall = movecontact=1
trigger1 = stateno=440

[state -3]
type = changestate
value = 230
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = movecontact=1
triggerall = p2bodydist x<=20
trigger1 = stateno=430

[state -3]
type = changestate
value = 235
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=C
triggerall = movecontact=1
trigger1 = stateno=430

[state -3]
type = changestate
value = 200
triggerall = var(30)
triggerall = statetype!=A
triggerall = movecontact=1
trigger1 = stateno=430

[state -3]
type = changestate
value = 1100
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = !movecontact
trigger1 = stateno=410 && animelem=5,>=0 && p2bodydist x>=40
trigger2 = stateno=440 && animelem=4,>=0 && p2bodydist x>=55

[state -3]
type = changestate
value = 1600
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = !movecontact
triggerall = enemynear(var(31)),vel x>0 || p2bodydist x<=30
trigger1 = stateno=410 && animelem=5,>=0 && p2bodydist x<40
trigger2 = stateno=440 && animelem=4,>=0 && p2bodydist x<55

[state -3]
type = changestate
value = 1700
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = !movecontact
trigger1 = stateno=410 && animelem=5,>=0
trigger2 = stateno=440 && animelem=4,>=0

[state -3]
type = changestate
value = 1600
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = !movecontact
triggerall = enemynear(var(31)),vel x>=0
triggerall = p2bodydist x<30 && enemynear(var(31)),pos y<=-100 || p2bodydist x>=30
trigger1 = stateno=410 && animelem=5,>=0
trigger2 = stateno=440 && animelem=4,>=0
;=================================================
[state -3]
type = changestate
value = 100
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = ctrl
triggerall = stateno!=40
triggerall = stateno!=100 && stateno!=101
triggerall = prevstateno!=100 && prevstateno!=101
triggerall = !enemynear(var(31)),numproj
triggerall = p2bodydist x>=120
trigger1 = numprojid(1050) || projcontacttime(1050)=[1,10]
trigger2 = numprojid(1060) || projcontacttime(1060)=[1,10]

[state -3]
type = changestate
value = 40
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = ctrl
triggerall = stateno!=40
triggerall = p2bodydist x=[20,120]
trigger1 = numprojid(1050) || projcontacttime(1050)=[1,10]
trigger2 = numprojid(1060) || projcontacttime(1060)=[1,10]
trigger3 = p2statetype!=A && p2bodydist x<=80 && p2movetype=H && p2stateno!=[120,159]

[state -3]
type = changestate
value = 100
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = ctrl
triggerall = stateno!=40
triggerall = stateno!=100 && stateno!=20 && stateno!=101
triggerall = prevstateno!=100 && prevstateno!=20 && prevstateno!=101
triggerall = !enemynear(var(31)),numproj
triggerall = p2bodydist x=[20,80]
trigger1 = p2movetype=H && p2stateno!=[120,159]


[state -3]
type = changestate
value = 800;+(backedgebodydist<=20)*5
triggerall = var(30)&&!var(33)&&!var(38)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=15 && p2dist x>0
triggerall = p2movetype!=H
triggerall = p2stateno!=40
triggerall = p2stateno!=[120,159]
trigger1 = p2bodydist x<0
trigger2 = p2bodydist x=0 && random<=400
trigger3 = p2stateno=52 && random<=666

[state -3]
type = changestate
value = 430
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=45
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
trigger1 = p2stateno=[120,159]

[state -3]
type = changestate
value = 3600
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = power>=2000
triggerall = p2life>=100
trigger1 = (projhittime(1050)=[1,5]) || projhittime(1060)=[1,5]
trigger1 = p2bodydist x<=120 && !enemynear(var(31)),numproj && random<=333
trigger2 = (var(36)>0 && p2stateno=var(36) || var(37)>0 && p2stateno=var(37)) && p2bodydist x=[80,150]
trigger2 = p2movetype=A && enemynear(var(31)),time<=5 && enemynear(var(31)),animtime<=-11 && random<=200

[state -3]
type = changestate
value = 3500
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[0,40]
triggerall = power>=2000
triggerall = p2life>=60
triggerall = enemynear(var(31)),animtime<=-8
triggerall = enemynear(var(31)),hitdefattr=SCA,NA,SA,HA,NP,SP,HP
triggerall = !enemynear(var(31)),numproj
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
trigger1 = p2movetype=A && p2stateno<700 && random<=300
trigger2 = p2movetype=A && p2stateno>=1000 && random<=333 && enemynear(var(31)),time>5
trigger3 = p2movetype=A && enemynear(var(31)),vel x>=3 && random<=333

[state -3]
type = changestate
value = 3310
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[60,100]
triggerall = power>=1000
triggerall = enemynear(var(31)),animtime<=-18
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
trigger1 = var(36)>0 && p2stateno=var(36) || var(37)>0 && p2stateno=var(37)
trigger1 = p2movetype=A && enemynear(var(31)),time<=5 && random<=200

[state -3]
type = changestate
value = 3210
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = power>=1000
trigger1 = (projhittime(1050)=[1,5]) || projhittime(1060)=[1,5]
trigger1 = p2bodydist x<=120 && !enemynear(var(31)),numproj && random<=300

[state -3]
type = changestate
value = 3010
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[0,80]
triggerall = power>=1000
triggerall = enemynear(var(31)),animtime<=-10
triggerall = enemynear(var(31)),hitdefattr=SCA,NA,SA,HA,NP,SP,HP
triggerall = !enemynear(var(31)),numproj
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
trigger1 = p2movetype=A && p2stateno<700 && random<=200
trigger2 = p2movetype=A && p2stateno>=1000 && random<=200 && enemynear(var(31)),time>5
trigger3 = p2movetype=A && enemynear(var(31)),vel x>=3 && random<=200

[state -3]
type = changestate
value = 1800
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl || (stateno=410 && animelem=5,>=0 || stateno=440 && animelem=4,>=0) && !movecontact
triggerall = p2bodydist x<=40 && p2dist x>10 && enemynear(var(31)),vel x=0 || (p2bodydist x=[0,40]) && enemynear(var(31)),vel x=(0,6]
triggerall = p2movetype!=H
triggerall = !enemynear(var(31)),numproj
trigger1 = (enemynear(var(31)),vel y=[-6,0)) && enemynear(var(31)),pos y>=-20
trigger2 = enemynear(var(31)),vel y>=0 && enemynear(var(31)),pos y=[-60,-30]

[state -3]
type = changestate
value = 1500
triggerall = var(30)
triggerall = stateno=1470 || stateno=1480
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=10
trigger1 = vel y<0 && p2dist y=[-30,0]
trigger2 = vel y>0 && p2dist y=[0,30]

[state -3]
type = changestate
value = 1450+(backedgebodydist>=100||enemynear(var(31)),numproj)*10
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x>=80
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
trigger1 = p2movetype=A && enemynear(var(31)),vel x>=3 && p2stateno>=1000 && random<=100
trigger2 = p2movetype=A && enemynear(var(31)),numproj && random<=100

[state -3]
type = changestate
value = 1460
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[40,80]
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
triggerall = enemynear(var(31)),vel y<0 || enemynear(var(31)),vel y>=0 && enemynear(var(31)),pos y<=-60
triggerall = enemynear(var(31)),vel x>0
trigger1 = p2movetype=A && enemynear(var(31)),hitdefattr=SCA,NT,ST,HT && random<=150
trigger2 = p2movetype=A && enemynear(var(31)),time<=15 && p2stateno<700 && random<=60
trigger3 = p2movetype=A && enemynear(var(31)),time<=15 && p2stateno>=1000 && random<=100

[state -3]
type = changestate
value = 1100
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[80,100]
triggerall = enemynear(var(31)),animtime<=-16
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
triggerall = !enemynear(var(31)),vel x
trigger1 = p2movetype=H && enemynear(var(31)),animtime<=-10 && random<=400
trigger2 = p2movetype=I && p2stateno>=200 && enemynear(var(31)),animtime<=-10 && random<=400
trigger3 = p2movetype=A && p2stateno<700 && random<=200 && enemynear(var(31)),animtime<=-10
trigger4 = var(36)>0 && p2stateno=var(36) || var(37)>0 && p2stateno=var(37)
trigger4 = p2movetype=A && enemynear(var(31)),time<=5 && random<=200

[state -3]
type = changestate
value = 1010
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = !numprojid(1060)
trigger1 = (projcontacttime(1050)=[1,5]) || projcontacttime(1060)=[1,5]
trigger1 = p2bodydist x<=120 && !enemynear(var(31)),numproj && random<=333

[state -3]
type = changestate
value = 1000
triggerall = var(30)
triggerall = !numprojid(1050)
triggerall = statetype!=A
triggerall = p2stateno!=5200 && p2stateno!=5201
triggerall = ctrl
triggerall = p2bodydist x>=100
triggerall = !enemynear(var(31)),numproj
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
triggerall = !enemynear(var(31)),vel x && p2movetype!=H || p2movetype=H
trigger1 = p2movetype=H && random<=100 && p2bodydist x>=120 && p2statetype!=A
trigger2 = p2movetype=I && p2stateno>=200 && p2bodydist x>=120 && p2statetype!=A
trigger3 = p2movetype=A && p2stateno<700 && random<=200 && p2bodydist x>=120 && p2statetype!=A
trigger4 = p2movetype=I && p2stateno<200 && random<=50 && p2bodydist x>=150 && p2statetype!=A
trigger5 = p2movetype=A && p2stateno>=1000 && random<=100 && enemynear(var(31)),time>5 && p2bodydist x>=120 && p2statetype!=A
trigger6 = p2statetype=L
trigger7 = (p2stateno=[5030,5099]) && enemynear(var(31)),vel y>0 && enemynear(var(31)),pos y>=-30
trigger8 = p2stateno=[5100,5119]

[State -3]
type = ChangeState
value = 45
triggerall = var(30)
triggerall = statetype=A && ctrl && backedgedist<3
triggerall = p2bodydist x<=40
trigger1 = p2movetype=A && p2stateno>=1000 && random<=50 && pos y<=-60

[state -3]
type = changestate
value = 215
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = (p2bodydist x=[40,60]) && enemynear(var(31)),vel x=0 || (p2bodydist x=[50,75]) && enemynear(var(31)),vel x=(0,6]
triggerall = p2movetype!=H
triggerall = !enemynear(var(31)),numproj;**
trigger1 = (enemynear(var(31)),vel y=[-6,0)) && enemynear(var(31)),pos y>=-40
trigger2 = p2bodydist x>=50 && enemynear(var(31)),vel y>=0 && enemynear(var(31)),pos y=[-90,-60]

[state -3]
type = changestate
value = 235
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = (p2bodydist x=[30,100]) && enemynear(var(31)),vel x=0 || (p2bodydist x=[40,110]) && enemynear(var(31)),vel x=(0,6]
triggerall = p2movetype!=H
triggerall = !enemynear(var(31)),numproj;**
trigger1 = (enemynear(var(31)),vel y=[-6,0)) && enemynear(var(31)),pos y>=-40
trigger2 = p2bodydist x>=40 && enemynear(var(31)),vel y>=0 && enemynear(var(31)),pos y=[-70,-40]

[state -3]
type = changestate
value = 205
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[40,70]
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
trigger1 = p2movetype=A && p2stateno<700 && random<=200 && enemynear(var(31)),animtime<=-4
trigger2 = p2movetype=I && p2stateno<200 && random<=100
trigger3 = p2movetype=A && p2stateno>=1000 && random<=222 && enemynear(var(31)),time>5 && enemynear(var(31)),animtime<=-4

[state -3]
type = changestate
value = 205
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x=[20,70]
trigger1 = p2stateno=40 && random<=333

[state -3]
type = changestate
value = 410
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=45
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
triggerall = p2stateno!=40
triggerall = p2stateno!=[700,999]
trigger1 = p2movetype=H && enemynear(var(31)),animtime<=-7
trigger2 = p2movetype=I && p2stateno>=200 && enemynear(var(31)),animtime<=-7
trigger3 = p2movetype=A && p2stateno<700 && random<=200 && enemynear(var(31)),animtime<=-7
trigger4 = p2movetype=I && p2stateno<200 && random<=100
trigger5 = p2movetype=A && p2stateno>=1000 && random<=222 && enemynear(var(31)),time>5 && enemynear(var(31)),animtime<=-7

[state -3]
type = changestate
value = ifelse(random<=700,200+(p2stateno=40||random<=600&&p2statetype!=C&&p2stateno!=[700,999])*10,230)
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=20
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
trigger1 = p2stateno=100 || p2stateno=52 && random<=333
trigger2 = p2movetype=H
trigger3 = p2movetype=I && p2stateno>=200
trigger4 = p2movetype=A && p2stateno<700 && random<=400
trigger5 = p2movetype=I && p2stateno<200 && random<=400
trigger6 = p2movetype=A && p2stateno>=1000 && random<=400 && enemynear(var(31)),time>5

[state -3]
type = changestate
value = 430
triggerall = var(30)
triggerall = statetype!=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=45
triggerall = !enemynear(var(31)),numproj || enemynear(var(31)),numproj && !var(32)
trigger1 = p2stateno=100 && random<=333 || p2stateno=52 && random<=333
trigger2 = p2movetype=H && enemynear(var(31)),animtime<=-6
trigger3 = p2movetype=I && p2stateno>=200 && enemynear(var(31)),animtime<=-6
trigger4 = p2movetype=A && p2stateno<700 && random<=300 && enemynear(var(31)),animtime<=-6
trigger5 = p2movetype=I && p2stateno<200 && random<=300
trigger6 = p2movetype=A && p2stateno>=1000 && random<=333 && enemynear(var(31)),time>5 && enemynear(var(31)),animtime<=-6

[state -3]
type = changestate
value = 640
triggerall = var(30)
triggerall = !vel x
triggerall = statetype=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=70
trigger1 = vel y>0 && pos y=[-80,-30]
trigger2 = var(13) && vel y>=-1.5

[state -3]
type = changestate
value = 615
triggerall = var(30)
triggerall = vel x
triggerall = statetype=A
triggerall = p2statetype=S
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=45
trigger1 = vel y>0 && pos y=[-60,-30]

[state -3]
type = changestate
value = 645
triggerall = var(30)
triggerall = vel x
triggerall = statetype=A
triggerall = p2statetype!=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=75
trigger1 = vel y>0 && pos y=[-80,-30]
trigger2 = (var(13) || var(38)<0) && vel y>=-1.5

[state -3]
type = changestate
value = 610
triggerall = var(30)
triggerall = !var(35)
triggerall = !vel x
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=70
trigger1 = vel y<0 && p2dist y=[-100,-30]
trigger2 = vel y>0 && p2dist y=[-70,-10]

[state -3]
type = changestate
value = 640
triggerall = var(30)
triggerall = !var(35)
triggerall = !vel x
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=80
trigger1 = vel y<0 && p2dist y=[-80,20]
trigger2 = vel y>0 && p2dist y=[-50,70]

[state -3]
type = changestate
value = 630
triggerall = var(30)
triggerall = !var(35)
triggerall = !vel x
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=80
trigger1 = vel y<0 && p2dist y=[-90,20]
trigger2 = vel y>0 && p2dist y=[-30,70]

[state -3]
type = changestate
value = 645
triggerall = var(30)
triggerall = !var(35)
triggerall = vel x
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=90
trigger1 = vel y<0 && p2dist y=[-60,50]
trigger2 = vel y>0 && p2dist y=[-20,100]

[state -3]
type = changestate
value = 615
triggerall = var(30)
triggerall = !var(35)
triggerall = vel x
triggerall = statetype=A
triggerall = p2statetype=A
triggerall = p2stateno!=5120 && p2stateno!=5200 && p2stateno!=5201 && p2statetype!=L
triggerall = ctrl
triggerall = p2bodydist x<=50
trigger1 = vel y<0 && p2dist y=[-90,30]
trigger2 = vel y>0 && p2dist y=[-50,70]
;=================================================
[state -3]
type = changestate
value = 120
triggerall = var(30)
triggerall = ctrl
trigger1 = enemynear(var(31)),numproj && var(32)

[state -3]
type = changestate
value = 100
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = p2statetype!=A;*****************
triggerall = ctrl
triggerall = stateno!=40
triggerall = stateno!=100 && stateno!=101; && stateno!=20
triggerall = prevstateno!=100 && stateno!=101; && prevstateno!=20
triggerall = p2stateno!=5120
triggerall = !enemynear(var(31)),numproj
trigger1 = p2bodydist x>=20 && p2movetype!=A && p2stateno>=200 && random<=200
trigger2 = p2bodydist x>=20 && p2movetype!=A && p2stateno<200 && random<=100
trigger3 = p2bodydist x>=60 && p2movetype=A && random<=80

[state -3]
type = changestate
value = 40
triggerall = var(30)
triggerall = !var(35)
triggerall = ctrl
triggerall = statetype!=A
trigger1 = p2stateno=52 && (p2dist x=[0,40]) && random<=100
trigger2 = p2bodydist x<=40 && random<=100 && p2stateno=5120 && enemynear(var(31)),time>=3
trigger3 = (p2bodydist x=[40,100]) && random<=120 && p2movetype!=A && p2statetype!=A && p2statetype!=L
trigger4 = (p2bodydist x=[0,80]) && (p2stateno=[0,699])&& p2movetype=A && random<=120 && p2statetype=C
trigger5 = backedgebodydist<=30 && p2stateno=5120 && (p2bodydist x=[0,30])
trigger6 = p2movetype=A && enemynear(var(31)),vel x>3 && random<=50 && p2stateno>=1000 && p2bodydist x<=100
trigger7 = p2statetype=A && enemynear(var(31)),vel y<0 && random<=40 && p2bodydist x<=100
trigger8 = p2bodydist x>=120 && p2movetype=A && random<=100 && p2stateno>=1000

[state -3]
type = changestate
value = 80
triggerall = var(30)
triggerall = !var(35)
triggerall = p2statetype!=L && p2stateno!=5120
triggerall = statetype!=A
triggerall = stateno!=[150,151]
triggerall = ctrl
trigger1 = p2movetype=A && (p2bodydist x=[20,100]) && enemynear(var(31)),time<=5 && p2statetype!=A
trigger1 = p2stateno<700 && random<=40 || p2stateno>=1000 && random<=50 || enemynear(var(31)),numproj && random<=70
trigger2 = p2bodydist x>100 && p2movetype=A && random<=50 && p2statetype!=A
trigger3 = p2movetype=A && (p2bodydist x=[20,100]) && enemynear(var(31)),animtime<=-31 && random<=60

[state -3]
type = changestate
value = 120
triggerall = var(30)
triggerall = ctrl
trigger1 = p2dist y>=-100 && inguarddist
trigger1 = p2statetype=A && enemynear(var(31)),vel y>=0 && p2movetype=A
trigger2 = enemynear(var(31)),numproj>0
trigger3 = p2movetype=A 
trigger3 = inguarddist

[state -3]
type = changestate
value = 800;+(backedgebodydist<=50)*5
triggerall = var(30)&&!var(38)
triggerall = !var(33)
triggerall = statetype!=A
triggerall = ctrl
triggerall = p2statetype!=A && p2statetype!=L && p2stateno!=5200 && p2stateno!=5201
triggerall = p2bodydist x<=10 && p2dist x>0
triggerall = p2movetype!=H
triggerall = p2stateno!=52 && p2stateno!=40
triggerall = p2stateno!=[120,159]
trigger1 = p2movetype=A
trigger1 = random<=400
trigger2 = p2stateno=100 || p2stateno=52 || p2bodydist x<=0


[state -3]
type = changestate
value = 90
triggerall = var(30)
triggerall = !var(35)
triggerall = p2statetype!=A
triggerall = statetype!=A
triggerall = stateno!=[150,151]
triggerall = !enemynear(var(31)),numproj
triggerall = ctrl
trigger1 = p2statetype=L && p2bodydist x<100 && random<=100
trigger2 = p2movetype=I && p2bodydist x<60 && random<=60 && p2stateno<200 && p2statetype!=A
trigger3 = p2statetype!=A && p2movetype=A && p2bodydist x<60 && random<=80 && enemynear(var(31)),time>5
trigger3 = !enemynear(var(31)),vel x || enemynear(var(31)),vel x && p2stateno>=1000

[state -3]
type = changestate
value = 20
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A
triggerall = ctrl
triggerall = stateno!=100 && stateno!=20
triggerall = prevstateno!=100 && prevstateno!=20
triggerall = p2stateno!=5120 && p2statetype!=L
triggerall = random<=500
trigger1 = p2bodydist x>=20 && p2movetype!=A
trigger2 = p2movetype=A && p2bodydist x>=60

[state -3]
type = changestate
value = 105
triggerall = var(30)
triggerall = !var(35)
triggerall = statetype!=A 
triggerall = ctrl
trigger1 = p2stateno=5120 || p2statetype=L || p2stateno=5201 || p2stateno=5200
trigger1 = p2bodydist x=[-40,40]
trigger2 = numenemy=2 && enemynear(0),p2bodydist x=[-50,50]
trigger2 = enemynear(1),stateno=5120 || enemynear(0),stateno=5120
trigger2 = backedgedist>60

[state -3]
type = changestate
value = 5200
triggerall = var(30)
triggerall = vel y>0
triggerall = alive
trigger1 = pos y>=-20
trigger1 = stateno=5050
trigger1 = canrecover

[state -3]
type = changestate
value = 720
triggerall = var(30)
triggerall = power>=1000
triggerall = statetype!=A
triggerall = p2statetype=S
triggerall = p2bodydist x=[0,40]
trigger1 = p2movetype=A
trigger1 = stateno=150 || stateno=152
trigger1 = random<=40
trigger1 = p2stateno<700









